<?php
Prado::using('Application.models.fecha');
Prado::using('Application.models.cliente');
Prado::using('Application.models.pago');
Prado::using('Application.models.cab_documento');
Prado::using('System.Web.UI.ActiveControls.*');

class NewPago extends TPage
{
    private $CodigoPago = null;    
    private $_data=null;
    
    private function sqlmap_Pagos()
    {
        return $this->Application->getModule('SQLMap_PAGOS')->getClient();		    
    }		    

    private function sqlmap_CabPedido()
    {
        return $this->Application->getModule('SQLMap_CAB_DOCUMENTOS')->getClient();
    }

    private function sqlmap_Cliente()
    {
        return $this->Application->getModule('SQLMap_CLIENTES')->getClient();
    }

    public function onLoad($param)
    {
        parent::onLoad($param);
        if(!$this->IsPostBack)
        {        
                
          $this->TxtNum_Pago->Enabled     = "false";        
          $this->CodigoPago =  (int)rtrim(ltrim($_GET['CODIGO_PAGO']));            
          if ((int)$this->CodigoPago === -1)
            {
              $this->Limpiar_Registro();
              $this->TxtNum_Pago->Text      = $this->CodigoPago;
              $this->btnEliminar->Enabled   = 'false';
              
            }
          else
            { 
              $this->lbTituloGrid->Text = 'Modificar datos de Pago';                           
              $edit_pago =  $this->sqlmap_Pagos()->queryForObject("Select_Pago",$this->CodigoPago);
              $this->TxtNum_Pago->Text        = $edit_pago->num_pago;
              $this->TxtMontoPago->Text       = $edit_pago->montopago;
              $this->TxtFecha_Pago->Text      = $edit_pago->fecha_pago;
              $this->TxtNum_Documento->Text   = $edit_pago->num_documento;
              $this->TxtFecha_Registro->Text  = $edit_pago->fecha_registro;
              $this->TxtUsuario->Text         = $edit_pago->cod_usuario;
              $this->TxtNom_Cliente->Text     = $edit_pago->nom_cliente;
              $this->TxtDir_Cliente->Text     = $edit_pago->dir_cliente;
              $this->btnEliminar->Enabled     = 'true';                                                        
            }        
        }                
                                        
    }
  
    public function Limpiar_Registro()
    {
      $this->TxtNum_Pago->Text        = '';
      $this->TxtMontoPago->Text       = '0.00';
      $this->TxtFecha_Pago->Text      = date("Y/m/d");
      $this->TxtNum_Documento->Text   = '';
      $this->TxtFecha_Registro->Text  = ''; 
      $this->TxtNom_Cliente->Text     = '';
      $this->TxtDir_Cliente->Text     = '';      
      $this->TxtUsuario->Text     = $_SESSION["ID_USUARIO"];                                     
    }
  
    public function Grabar_Registro($sender, $param)    
    {   
      $resultado = $this->Buscar_Documento($sender, $param);
      if ($resultado === 1)
          {
            $this->CodigoPago =  (int)rtrim(ltrim($_GET['CODIGO_PAGO']));                                        
            $new_pago = new pago();
            $new_pago->num_pago         = $this->CodigoPago;
            $new_pago->montopago        = $this->TxtMontoPago->Text ;
            $new_pago->fecha_pago       = $this->TxtFecha_Pago->Text;
            $new_pago->num_documento    = $this->TxtNum_Documento->Text;
            $new_pago->fecha_registro   = $this->TxtFecha_Registro->Text;
            $new_pago->cod_usuario      = $this->TxtUsuario->Text;
            $new_pago->nom_cliente      = $this->TxtNom_Cliente->Text;
            $new_pago->dir_cliente      = $this->TxtDir_Cliente->Text;
                                
            if ($this->CodigoPago === -1)
              {                                          
                $max_registro = $this->sqlmap_Pagos()->queryForObject('SelectMaxPago');                                          
                $new_pago->num_pago     = $max_registro;                                                           
                $this->sqlmap_Pagos()->insert("InsertPago", $new_pago);
                $this->Limpiar_Registro();
                $this->Validador->Text = 'Se ingreso un nuevo registro';
              }          
            else
              {
                $this->sqlmap_Pagos()->update("UpdatePago", $new_pago);
                $this->Validador->Text = 'Se actualizaron los datos con exito';            
              }
          }                      
    }

    
    public function Borrar_Registro($sender, $param)    
    { 
        $this->CodigoPago =  (int)rtrim(ltrim($_GET['CODIGO_PAGO']));         
        $del_pago = new pago(); 
        $num_pago = (int)$this->TxtNum_Pago->Text;        
        $del_pago = $this->sqlmap_Pagos()->queryForObject("Select_Pago", $num_pago);                
        $this->sqlmap()->delete("DeletePago", $del_pago);                                                                                                                  
        $this->Limpiar_Registro();                        
        $this->Validador->Text = 'Se eliminaron los datos con exito';      
    }

    public function Buscar_Documento($sender,$param)
    {
      $this->Validador->Text = '';            
      $pedido   = $this->sqlmap_CabPedido()->queryForObject('SelectCab_Documento',(int)$this->TxtNum_Documento->Text); 
      if ($pedido===null)
      {
        $this->Validador->Text = 'El documento numero '.$this->TxtNum_Documento->Text.' no se ha encontrado, por favor verificar...';
        $this->TxtDir_Cliente->Text = '';
        $this->TxtNom_Cliente->Text = '';
        return 0;                
      }
      else
      {     
        $this->TxtDir_Cliente->Text = $pedido->nom_cliente;
        $this->TxtNom_Cliente->Text = $pedido->dir_cliente;
        return 1;        
      }              
      
    }
         
}

?>